import axios from "axios";
// 引入进度条
import nprogress from "nprogress";
// 引入进度条样式
import "nprogress/nprogress.css"
// 在当前模块中引入store
import store from "@/store"

// 1、利用create 创建一个实例
const request = axios.create({
  // 发起请求时携带的路劲
  baseURL: process.env.VUE_APP_BASE_API,
  // 代表超时时间5s
  timeout: 5000,
})

// 请求拦截器，在发请求之前，请求拦截可以检测到，从而做一些事情
request.interceptors.request.use((config) => {
  // config : 配置对象,他有个属性 headers请求头
  // 在请求头中加上临时的身份id 持久存储的
  if (store.state.detail.uuid_token) {
    config.headers.userTempId = store.state.detail.uuid_token
  }
  if (localStorage.getItem('token')) {
    config.headers.token = localStorage.getItem('token')
  }

  nprogress.start()
  return config
})

// 响应拦截器
request.interceptors.response.use((res) => {
  nprogress.done()
  // 修改响应数据
  return res.data;
}, (error) => {
  return Promise.reject(new Error('响应失败'));
});


export default request